ci(l2): add replay-witness-test job to L2 CI workflow#6364
ci(l2): add replay-witness-test job to L2 CI workflow#6364avilagaston9 wants to merge 4 commits intomainfrom
Conversation
to be keyed by H256 (keccak256 of address) instead of Address. Replace the keys-based loop in execution_witness_from_rpc_chain_config with a recursive state trie walker that discovers accounts and their storage roots directly from the trie leaves. This removes the dependency on the keys field which is being phased out of the RPC spec. Keep keys in RpcExecutionWitness with #[serde(default)] for interoperability but always emit it empty. Update GuestProgramState fields (storage_tries, verified_storage_roots, account_hashes_by_address) to use H256 keys consistently.
…iggers so that changes to the witness type definition or RPC endpoint also run L2 tests
patches its ethrex dependencies with the current PR's local checkout using Cargo [patch], then sends a transaction to a dev L1 node and replays the block to verify the execution witness end-to-end.
🤖 Kimi Code ReviewReview of PR #6364: Replay Witness Test CI JobSecurity & Correctness Issues
Performance & Reliability Issues
Code Quality & Maintainability
Minor Issues
The workflow addition is generally well-structured, but addressing the security issue with the private key and the reliability issues with transaction polling should be prioritized. Automated review by Kimi (Moonshot AI) · custom prompt |
🤖 Codex Code Review
No Rust/EVM/state-transition code changed in this PR, so consensus/opcode/gas/state-trie/RLP correctness is not directly impacted here. Automated review by OpenAI Codex · custom prompt |
🤖 Claude Code ReviewHere is my review of PR 6364: PR Review: Add
|
| Severity | Item |
|---|---|
| Medium | sleep 3 is a race — poll for receipt with retry logic |
| Medium | rex binary not checksum-verified |
| Low | TX_HASH not validated before use |
| Low | cargo build --release is slow; debug build suffices for CI |
| Info | ethrex-replay pinned to latest main |
| Info | TOML heredoc indentation |
The core design (Cargo [patch], docker image reuse, dev node setup) is solid. Addressing the receipt polling race and the binary checksum are the most important fixes before merging.
Automated review by Claude (Anthropic) · custom prompt
…s-test CI job instead of cloning HEAD. This prevents unrelated replay regressions from breaking ethrex CI. The pinned SHA should be updated when replay is modified to match new ethrex API changes.
Motivation
We need CI coverage to verify that ethrex-replay works against the current ethrex code. This catches breaking changes to
ExecutionWitness, thedebug_executionWitnessRPC endpoint, or any VM/blockchain APIs that ethrex-replay depends on. Follows up on #6356.Description
Add a
replay-witness-testjob to the L2 CI workflow that:[patch]rexand replays the block containing it with--no-zkvmThe
[patch]approach means ethrex-replay'sCargo.tomlpoints to a pinned ethrex rev, but CI overrides the dependencies with the local checkout. The replay commit is pinned to avoid unrelated replay regressions breaking ethrex CI.Breaking change procedure:
When an ethrex PR introduces a breaking change to replay:
REPLAY_REFin the workflow to the companion branch/commitREPLAY_REFto the new replay main commitChecklist
STORE_SCHEMA_VERSION— N/A, CI-only change